import request from '@/utils/request'

// 项目日程管理 API

// 获取日程列表或单个日程
export function Get(id, args) {
  return request({
    url: `/erp/api/schedule/${id || ''}${args && ('?' + args) || ''}`,
    method: 'get'
  })
}

// 创建新日程
export function Post(data) {
  return request({
    url: '/erp/api/schedule/',
    headers: { 'content-type': 'application/json' },
    method: 'post',
    data: JSON.stringify(data)
  })
}

// 更新日程
export function Put(id, data) {
  return request({
    url: `/erp/api/schedule/${id || ''}`,
    headers: { 'content-type': 'application/json' },
    method: 'put',
    data: JSON.stringify(data)
  })
}

// 删除日程
export function Delete(id) {
  return request({
    url: `/erp/api/schedule/${id || ''}`,
    method: 'delete'
  })
}

// 生成日程记录
export function GenerateRecords(schedule_id, data) {
  return request({
    url: `/erp/api/schedule/${schedule_id}/generate_records`,
    headers: { 'content-type': 'application/json' },
    method: 'post',
    data: JSON.stringify(data)
  })
}

// 日程记录管理 API

// 获取日程记录列表或单个记录
export function GetRecord(id, args) {
  return request({
    url: `/erp/api/schedule_record/${id || ''}${args && ('?' + args) || ''}`,
    method: 'get'
  })
}

// 创建新日程记录
export function PostRecord(data) {
  return request({
    url: '/erp/api/schedule_record/',
    headers: { 'content-type': 'application/json' },
    method: 'post',
    data: JSON.stringify(data)
  })
}

// 更新日程记录
export function PutRecord(id, data) {
  return request({
    url: `/erp/api/schedule_record/${id || ''}`,
    headers: { 'content-type': 'application/json' },
    method: 'put',
    data: JSON.stringify(data)
  })
}

// 删除日程记录
export function DeleteRecord(id) {
  return request({
    url: `/erp/api/schedule_record/${id || ''}`,
    method: 'delete'
  })
}

// 完成日程记录
export function CompleteRecord(record_id, data) {
  return request({
    url: `/erp/api/schedule_record/${record_id}/complete`,
    headers: { 'content-type': 'application/json' },
    method: 'post',
    data: JSON.stringify(data)
  })
}

// 发送钉钉通知
export function NotifyScheduleRecord(record_id, data) {
  return request({
    url: `/erp/api/schedule_record/${record_id}/notify`,
    headers: { 'content-type': 'application/json' },
    method: 'post',
    data: JSON.stringify(data)
  })
}

// 日程模板管理 API

// 获取日程模板列表或单个模板
export function GetTemplate(id, args) {
  return request({
    url: `/erp/api/schedule_template/${id || ''}${args && ('?' + args) || ''}`,
    method: 'get'
  })
}

// 创建新日程模板
export function PostTemplate(data) {
  return request({
    url: '/erp/api/schedule_template/',
    headers: { 'content-type': 'application/json' },
    method: 'post',
    data: JSON.stringify(data)
  })
}

// 更新日程模板
export function PutTemplate(id, data) {
  return request({
    url: `/erp/api/schedule_template/${id || ''}`,
    headers: { 'content-type': 'application/json' },
    method: 'put',
    data: JSON.stringify(data)
  })
}

// 删除日程模板
export function DeleteTemplate(id) {
  return request({
    url: `/erp/api/schedule_template/${id || ''}`,
    method: 'delete'
  })
}

// 应用日程模板
export function ApplyTemplate(template_id, data) {
  return request({
    url: `/erp/api/schedule_template/${template_id}/apply`,
    headers: { 'content-type': 'application/json' },
    method: 'post',
    data: JSON.stringify(data)
  })
}

// 自动安排所有项目（移动到模板API下）
export function AutoScheduleAllProjects(schedule_id, data) {
  return request({
    url: `/erp/api/schedule_template/${schedule_id}/auto_schedule_all_projects`,
    headers: { 'content-type': 'application/json' },
    method: 'post',
    data: JSON.stringify(data)
  })
}

// AI重新规划日程记录时间
export function AIRescheduleRecords(data) {
  return request({
    url: '/erp/api/schedule/ai_reschedule',
    headers: { 'content-type': 'application/json' },
    method: 'post',
    data: JSON.stringify(data)
  })
}
